Ch02 Stateful Tracking/Day5 Cookie-Third-party Cookie 如何做到Cross-site tracking
- 瀏覽器自動在HTTP request夾帶cookie的性質
- Third-party Cookie 如何做到Cross-site tracking
在blog.example和news.example的網頁管理員都與追蹤者tracker.example合作的前提下,並把tracker放在網頁之中:
因tracker的資源包含在blor.example內,瀏覽器需發請求給tracker.example,tracker生成新的identifier,夾帶在response header之中 Set-Cookie: tracker_id=<identifier>
。
瀏覽器將資料儲存到reacker.example,使用者下次造訪時tracker.example會收到請求,並夾帶*tracker_id=<identifier>
,tracker便能真知道使用者再次造訪網頁。
使用者存取news.example,其內包含tracker.example的資源,因此要向tracker.example發出請求,夾帶*tracker_id=<identifier>
,tracker.example便知道擁有這個identifier的使用者除了造訪blog.example以外,也造訪news.example,達成cross-tracking
- Cookie特性帶來的問題:
1.在有些不需要cookie的請求中,也會插入那些用不到的cookie
2.CSRF(cross site require forgery)的防禦:誘導管理員訪問網頁,竊取管理員登入資訊的cookie
- SameSite屬性
1.可以指定cookie只有在甚麼情境下可以被夾帶
2.三個屬性值
SameSite-Strict
:只有在first-party的情境下能傳送cookie
SameSite=Lax
:最大宗。從其他origin轉移進來,會夾帶cookie
SameSite=None
:傳統方式,直接不設定
資料來源、選用書籍:<Web Tracking的資安攻擊與防禦策略>鐵人賽專用書